共计 2078 个字符,预计需要花费 6 分钟才能阅读完成。
前言
虚拟机推荐配置:
系统推荐 Ubuntu 2204 版本。(我用的 2404,出现了虚拟管理器还 没有适配最新版 的情况)
点击跳转下载 Ubuntu 22.04.5

1CPU 8 核心,一个 cpu 不容易出现兼容性问题。
内存 4G,硬盘 60G,内存还要分配给嵌套的虚拟机,所以要大一点,硬盘也大一点,提高容错。

确认虚拟化支持(机房一般已经设置好了)
egrep -c '(vmx|svm)' /proc/cpuinfo
没设置会显示 0,需要在虚拟机 cpu 部分改一下

更新系统源与必要软件
sudo apt update
sudo apt upgrade
sudo apt install open-vm-tools
创建桥接接口 br0
查看有没有 br0
或者其他桥接接口。如果没有,需要先创建一个桥接(通常桥接到宿主机的物理网卡,比如 ens33
)。
ip link show
编辑 netplan 配置(Ubuntu 20.04/22.04/24.04 默认用 netplan 管理网络):
sudo nano /etc/netplan/01-netcfg.yaml
写入内容(注意缩进要严格对齐):
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
dhcp6: no
bridges:
br0:
interfaces: [ens33]
dhcp4: yes
dhcp6: no
parameters:
stp: false
forward-delay: 0
保存后应用:
sudo netplan apply
如果出现警告
sudo chmod 600 /etc/netplan/01-netcfg.yaml
sudo chmod 600 /etc/netplan/01-network-manager-all.yaml
再次应用
sudo netplan apply
在虚拟机 Ubuntu 的终端执行:
ip a

现在 br0
已经配置好了,可以在 virt-install
里用桥接模式启动虚拟机了
创建嵌套虚拟机
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils ovmf
启动开启开机自启并检查 libvirtd:
sudo systemctl enable --now libvirtd
sudo systemctl status libvirtd
创建文件夹,创建虚拟磁盘
sudo mkdir -p /var/lib/libvirt/images/ubuntu2204
sudo qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu2204/ubuntu.qcow2 30G
我们现在需要连接 ssh,把镜像上传到 Ubuntu
如果 ssh 连接失败,可能是没有安装 open ssh server
sudo apt install openssh-server

上传完成后将 ISO 放到 libvirt 默认目录。为什么这么做?
因为 qemu 进程不是以你当前的 ubuntu
用户运行,而是以系统用户 libvirt-qemu
运行。
默认情况下,/home/ubuntu
目录权限是 700
(只有自己能访问),所以 qemu 无法“穿过”这个目录去读取 ISO。
sudo mkdir -p /var/lib/libvirt/boot
sudo cp /home/ubuntu/ubuntu-22.04.5-desktop-amd64.iso /var/lib/libvirt/boot/
创建虚拟机
sudo virt-install \
--name ubuntu2204 \
--ram 2048 \
--vcpus 4 \
--cpu host \
--disk path=/var/lib/libvirt/images/ubuntu2204/ubuntu.qcow2,format=qcow2,bus=virtio \
--cdrom /var/lib/libvirt/boot/ubuntu-22.04.5-desktop-amd64.iso \
--os-variant ubuntu22.04 \
--graphics vnc,listen=0.0.0.0 \
--network bridge=br0,model=virtio

此时会直接进入安装界面

如果没有进入安装界面,可以在 Windows 下载 VNC 连接,或者在 Ubuntu 安装 虚拟系统管理器 连接

虚拟机创建完成后可以看到,嵌套虚拟机的 IP 何 虚拟机的 IP 一样。
至此嵌套 虚拟机桥接配置完成。
没有进入安装界面的情况
方法一:windows 上安装 VNC 连接
确认 IP 和 VNC 端口,在 Ubuntu 上执行:
sudo ss -tlnp | grep qemu
ip a

例如我的就是 192.168.157.153:5900
这个 ip 加端口是用来给 VNC 连接的。
方法二:Ubuntu 上安装 虚拟系统管理器 连接
sudo apt update
sudo apt install virt-manager
安装后打开

打开后,可以看到成功出现了图形化界面。
